﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using GRC_TPE_WebApp.Controller;

namespace GRC_TPE_WebApp.View.Private.Communication
{
    public partial class AddCommunication : System.Web.UI.Page
    {
        int idClient = 0;
        string[] connectedUser = null;

        protected void Page_Load(object sender, EventArgs e)
        {
            /// tentative de récupération de l'id
            if (!int.TryParse(Request.QueryString["id"], out idClient))
                /// redirection s'il y a une erreur au Parse
                Response.Redirect(Request.UrlReferrer.AbsolutePath);
        }

        /// <summary>
        /// Méthode déclenchée une fois la page chargée
        /// </summary>
        /// <param name="e"></param>
        protected override void OnLoadComplete(EventArgs e)
        {
            base.OnLoadComplete(e);

            if (this.idClient != 0)
            {
                connectedUser = (string[])Session["User"];

                /// si l'utilisateur a bien été récupéré
                if (connectedUser != null & connectedUser.Count() == 5)
                {
                    string[] clientFields = ClientController.GetClientFields(this.idClient);

                    this.L_User.Text = connectedUser[0] + " " + connectedUser[1];

                    ///si tous les champs ont bien été retournés
                    if (clientFields.Count() == 4)
                        this.L_Client.Text = clientFields[0];
                    else
                        /// redirection s'il y a une erreur au Parse
                        Response.Redirect(Request.UrlReferrer.AbsolutePath);
                }
                else
                    Response.Redirect("~/View/Login.aspx");
            }
        }
        
        /// <summary>
        /// Permet d'ajouter une communication après le clic sur le bouton "addCommunicationButton" sur la page "AddCommunication.aspx"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void addCommunicationButton_Click(object sender, EventArgs e)
        {
            connectedUser = (string[])Session["User"];

            string ret = CommunicationController.AddCommunication(this.C_Date.SelectedDate, this.addCommunicationDescription.Text, this.addCommunicationTitle.Text, this.addCommunicationType.SelectedValue, this.idClient.ToString(), this.connectedUser[4]);
            if (ret == "No error")
            {
                this.addCommunicationDescription.ForeColor = System.Drawing.Color.DarkGreen;
                this.addCommunicationErrorMessage.Text = "Communication ajoutée avec succès";
                this.C_Date.SelectedDate = DateTime.Now;
                this.addCommunicationDescription.Text = "";
                this.addCommunicationTitle.Text = "";
            }
            else
            {
                this.addCommunicationDescription.ForeColor = System.Drawing.Color.DarkRed;
                this.addCommunicationErrorMessage.Text = ret;
            }
        }
    }
}